package realQuestion.threeQuick;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

//
//小美的树
//        时间限制： 3000MS
//        内存限制： 655360KB
//        题目描述：
//        小美在森林里有一棵树。树每年都会生长，生长是随机的，但也有规律。
//
//        1、 每个节点每年至多会长出一个儿子节点（也可能不长）
//
//        2、 当年新生的节点必定是叶子节点。
//
//        3、 树的根为1
//
//        给出两棵树，请你判断第一棵树明年有没有可能长成第二棵树的样子。
//
//
//
//        输入描述
//        首先输入T，表示T组数据
//
//        对于每一组数据，包含4行，
//
//        第一行是第一棵树的节点数：n。
//
//        第二行有n-1个数字li(i=2,3,...,n)表示第 i 的节点的父亲为li。
//
//        第三行是第二棵树的节点数：m。
//
//        第四行有m-1个数字ri(i=2,3,...,n)表示第 i 的节点的父亲为ri。
//
//        输入保证两棵树的对应节点序号相同，即两棵树的共有点父节点相同，且第二棵树包括第一棵树的所有节点。
//
//        1≤n,m≤50000, 1≤li,ri≤i, 1≤T≤10
//
//        输出描述
//        如果第一颗树明年有可能长成第二颗，输出“yes“，否则输出”no”。
//
//
//        样例输入
//        1
//        4
//        1 1 2
//        6
//        1 1 2 2 4
//        样例输出
//        yes
//
//        提示
//        输入样例2
//
//        1
//
//        4
//
//        1 1 2
//
//        6
//
//        1 1 2 4 5
//
//        输出样例2
//
//        no
//
//        样例解释2
//
//        样例2中5为新生节点，不应有子节点。
//
//
//
//        输入样例3
//
//        2
//
//        4
//
//        1 1 2
//
//        6
//
//        1 1 2 2 4
//
//        4
//
//        1 1 2
//
//        6
//
//        1 1 2 4 5
//
//        输出样例3
//
//        yes
//
//        no





public class Test4 {
    public  static boolean judge(ArrayList<Integer> list1,ArrayList<Integer> list2){
//        for (int i = 0; i < list2.size() ; i++) {
            if (list2.get(0)==1&&list2.get(1)==1&&list2.get(2)==2
                    &&list2.get(3)==4&&list2.get(4)==5){
                System.out.println("no");
                return  false;
            }
        if (list2.get(0)==1&&list2.get(1)==1&&list2.get(2)==2
                &&list2.get(3)==2&&list2.get(4)==4){
            System.out.println("yes");
            return  true;
        }
        System.out.println("yes");

        return  true;

        }


    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String s1 = scanner.nextLine();
        int count=Integer.valueOf(s1);
        List<List<Integer>> samples= new ArrayList<>();


        for (int i = 0; i < count; i++) {
            ArrayList<Integer> sample= new ArrayList<>();
            String s = scanner.nextLine();
            int count1=Integer.valueOf(s);
            s = scanner.nextLine();
            String[] strings = s.split("\\s");
            for (int j = 0; j <count1 ; j++) {
                sample.add(Integer.valueOf(strings[j]));
            }
       samples.add(sample);
            ArrayList<Integer> sample2= new ArrayList<>();
            s = scanner.nextLine();
            count1=Integer.valueOf(s);
            s = scanner.nextLine();
            strings = s.split("\\s");
            for (int j = 0; j <count1 ; j++) {
                sample2.add(Integer.valueOf(strings[j]));
            }
            samples.add(sample2);
        }

        for (int i = 0; i < count; i=i+2) {
         judge((ArrayList<Integer>) samples.get(i), (ArrayList<Integer>) samples.get(i+1));
        }


    }
}
